from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):  # 基础精通
    名称 = '基础精通'
    倍率 = 1.0

    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110

    关联技能 = ['基本攻击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '基本攻击'
    备注 = '一轮'
    是否主动 = 0
    关联技能 = ['无']
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    CD = 1  # 也没有CD
    # 共5击，127.96+143.96+158.99+174.97+190.96
    data0 = [int(i*1.093*1.08) for i in [0, 796.84]]
    hit0 = 1
    TP成长 = 0.10
    TP上限 = 5


class 技能2(主动技能):
    名称 = "直拳冲击"
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [15, 154]
    无色消耗 = 0
    data0 = [0, 435, 478, 523, 567, 612, 656, 700, 744, 789, 831, 877, 921, 964, 1009, 1054, 1097, 1142, 1186, 1230, 1273, 1318, 1362, 1407, 1450, 1495, 1541, 1582, 1626, 1673, 1715, 1760, 1805, 1849, 1893, 1936,
             1982, 2025, 2070, 2112, 2159, 2202, 2245, 2291, 2335, 2378, 2422, 2468, 2511, 2555, 2601, 2644, 2688, 2731, 2777, 2821, 2865, 2908, 2954, 2999, 3040, 3087, 3129, 3173, 3218, 3263, 3307, 3349, 3394, 3440, 3483]
    hit0 = 2
    data1 = [0, 1306, 1437, 1571, 1704, 1836, 1969, 2102, 2233, 2366, 2500, 2631, 2764, 2897, 3029, 3160, 3295, 3428, 3560, 3691, 3824, 3956, 4092, 4222, 4353, 4486, 4618, 4751, 4885, 5018, 5149, 5281, 5415, 5546, 5680,
             5813, 5945, 6076, 6209, 6343, 6475, 6609, 6740, 6873, 7004, 7138, 7269, 7403, 7536, 7668, 7801, 7934, 8065, 8198, 8332, 8464, 8596, 8729, 8861, 8995, 9127, 9259, 9391, 9522, 9655, 9788, 9921, 10054, 10185, 10318, 10450]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = "俯冲直拳"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3.5
    MP = [18, 196]
    无色消耗 = 0
    data0 = [0, 3087, 3398, 3712, 4025, 4339, 4652, 4965, 5278, 5591, 5904, 6218, 6532, 6843, 7157, 7470, 7784, 8097, 8410, 8723, 9037, 9347, 9662, 9975, 10287, 10601, 10914, 11228, 11540, 11853, 12167, 12480, 12793, 13107, 13420, 13733, 14046,
             14359, 14673, 14985, 15298, 15612, 15926, 16238, 16552, 16865, 17178, 17490, 17803, 18117, 18430, 18742, 19057, 19370, 19682, 19995, 20308, 20623, 20935, 21248, 21562, 21875, 22188, 22501, 22814, 23128, 23440, 23754, 24068, 24379, 24693]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = "俯冲翔拳"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3.5
    MP = [18, 196]
    无色消耗 = 0
    data0 = [0, 3088, 3400, 3712, 4025, 4339, 4653, 4965, 5279, 5591, 5905, 6219, 6531, 6845, 7158, 7470, 7782, 8098, 8410, 8723, 9036, 9351, 9663, 9977, 10288, 10603, 10917, 11229, 11542, 11854, 12168, 12482, 12794, 13107, 13421, 13733, 14046,
             14360, 14675, 14986, 15300, 15611, 15927, 16240, 16552, 16865, 17180, 17492, 17806, 18118, 18431, 18744, 19058, 19370, 19684, 19998, 20309, 20624, 20938, 21250, 21563, 21876, 22190, 22504, 22816, 23129, 23442, 23757, 24068, 24381, 24696]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能5(被动技能):
    名称 = '意念驱动'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    是否主动 = 1
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['泯灭神击', '制裁：怒火疾风', '正义执行：雷米迪奥斯的圣座']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.013 + 0.02 * self.等级, 5)

    def CD缩减倍率(self, 武器类型):
        if 武器类型 == '图腾':
            return 0.9
        else:
            return 1.0


class 技能6(主动技能):
    名称 = "圣拳锤击"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [12, 137]
    无色消耗 = 0
    data0 = [0, 429, 473, 516, 561, 603, 646, 691, 734, 777, 822, 865, 908, 953, 996, 1040, 1083, 1127, 1170, 1215, 1257, 1300, 1345, 1388, 1431, 1476, 1520, 1562, 1607, 1650, 1694, 1737, 1781, 1824, 1869, 1911,
             1954, 1998, 2042, 2086, 2128, 2174, 2216, 2260, 2304, 2348, 2390, 2435, 2478, 2521, 2565, 2608, 2653, 2696, 2740, 2782, 2828, 2870, 2914, 2958, 3002, 3044, 3089, 3132, 3175, 3220, 3262, 3307, 3348, 3394, 3436]
    hit0 = 1
    data1 = [0, 3865, 4257, 4650, 5043, 5435, 5828, 6219, 6612, 7005, 7397, 7790, 8181, 8574, 8966, 9358, 9751, 10143, 10535, 10929, 11321, 11713, 12105, 12497, 12890, 13281, 13674, 14065, 14457, 14850, 15243, 15636, 16028, 16420, 16813, 17203,
             17597, 17989, 18381, 18774, 19166, 19560, 19951, 20343, 20736, 21128, 21521, 21913, 22305, 22697, 23089, 23481, 23875, 24267, 24660, 25052, 25443, 25834, 26227, 26620, 27012, 27404, 27796, 28189, 28582, 28974, 29366, 29759, 30151, 30543, 30935]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = "俯冲腹拳"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3.5
    MP = [18, 196]
    无色消耗 = 0
    data0 = [0, 3324, 3663, 3998, 4336, 4674, 5011, 5348, 5687, 6024, 6360, 6697, 7035, 7373, 7710, 8048, 8384, 8721, 9060, 9397, 9734, 10072, 10410, 10745, 11084, 11421, 11758, 12096, 12434, 12771, 13107, 13445, 13782, 14121, 14458, 14795, 15131,
             15469, 15806, 16144, 16482, 16819, 17156, 17493, 17831, 18168, 18506, 18843, 19181, 19519, 19855, 20192, 20529, 20868, 21205, 21542, 21879, 22216, 22553, 22892, 23229, 23566, 23904, 24240, 24578, 24916, 25253, 25590, 25929, 26266, 26601]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    # def 神圣反击攻击力(self):
    #     # 神圣反击基础百分比与腹拳一样，但在修炼场手动开只有80%(和技巧精通等级相关,10级时80%，每级成长4%)
    #     # 技巧精通对于俯冲腹拳的额外加成不算在内
    #     return int(self.data0[self.等级] * (1 + self.TP成长 * self.TP等级) * self.技攻 * self.倍率)


class 技能8(被动技能):
    名称 = '技巧精通'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['所有']
    关联技能1 = ['俯冲直拳', '俯冲腹拳', '俯冲翔拳']
    关联技能2 = ['圣拳连击']
    # 关联技能4 = ['神圣反击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return round(1.00 + 0.01 * self.等级, 5)
        else:
            return round(1.10 + 0.015 * (self.等级 - 10), 5)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10, 5)

    def 加成倍率2(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.03, 5)

    # def 加成倍率4(self, 武器类型):
    #     if self.等级 == 0:
    #         return 1.0
    #     else:
    #         return round(0.40+0.04 * self.等级, 5)


class 技能9(主动技能):
    名称 = "瞬拳"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [22, 231]
    无色消耗 = 0
    data0 = [0, 3322, 3660, 3998, 4335, 4671, 5009, 5347, 5684, 6020, 6358, 6697, 7033, 7371, 7708, 8045, 8382, 8718, 9054, 9393, 9730, 10068, 10405, 10742, 11079, 11416, 11754, 12092, 12427, 12766, 13103, 13441, 13778, 14114, 14451, 14788, 15125,
             15464, 15799, 16137, 16476, 16813, 17150, 17486, 17825, 18161, 18499, 18835, 19174, 19510, 19847, 20184, 20521, 20858, 21196, 21532, 21871, 22207, 22545, 22882, 23220, 23558, 23893, 24232, 24569, 24907, 25241, 25579, 25917, 26254, 26592]
    hit0 = 1
    data1 = [0, 830, 915, 1000, 1083, 1169, 1251, 1336, 1420, 1504, 1588, 1674, 1758, 1842, 1925, 2011, 2096, 2179, 2264, 2347, 2432, 2517, 2600, 2685, 2771, 2853, 2937, 3021, 3107, 3191, 3274, 3359, 3444, 3527, 3613,
             3697, 3780, 3866, 3950, 4033, 4119, 4204, 4287, 4372, 4454, 4540, 4625, 4708, 4792, 4877, 4961, 5046, 5129, 5214, 5299, 5382, 5468, 5551, 5636, 5721, 5804, 5888, 5975, 6057, 6141, 6224, 6309, 6394, 6478, 6563, 6647]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能10(主动技能):
    名称 = "圣拳连击"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [45, 462]
    无色消耗 = 0
    data0 = [0, 1682, 1852, 2023, 2192, 2364, 2534, 2705, 2875, 3045, 3218, 3388, 3559, 3728, 3899, 4070, 4241, 4410, 4581, 4752, 4924, 5095, 5264, 5436, 5605, 5778, 5948, 6118, 6288, 6459, 6632, 6802, 6972, 7142, 7313, 7483, 7655,
             7824, 7995, 8165, 8336, 8507, 8677, 8849, 9019, 9190, 9359, 9531, 9701, 9872, 10041, 10213, 10384, 10554, 10726, 10895, 11068, 11238, 11409, 11579, 11749, 11919, 12091, 12261, 12432, 12603, 12773, 12945, 13115, 13285, 13455]
    hit0 = 1
    data1 = [0, 2055, 2264, 2472, 2681, 2890, 3098, 3306, 3515, 3723, 3933, 4140, 4350, 4557, 4767, 4975, 5183, 5392, 5600, 5809, 6018, 6227, 6434, 6645, 6852, 7060, 7269, 7478, 7687, 7895, 8103, 8313, 8522, 8729, 8937, 9147, 9355, 9564,
             9771, 9982, 10190, 10397, 10606, 10814, 11024, 11232, 11440, 11649, 11859, 12066, 12276, 12483, 12691, 12901, 13109, 13318, 13525, 13733, 13944, 14151, 14360, 14568, 14778, 14986, 15193, 15402, 15612, 15820, 16028, 16237, 16446]
    hit1 = 1
    data2 = [0, 2491, 2742, 2997, 3249, 3502, 3755, 4008, 4260, 4513, 4767, 5019, 5272, 5525, 5778, 6030, 6283, 6537, 6790, 7042, 7294, 7548, 7799, 8052, 8306, 8559, 8810, 9063, 9317, 9570, 9822, 10076, 10329, 10581, 10833, 11087, 11340,
             11592, 11846, 12097, 12350, 12603, 12857, 13109, 13361, 13615, 13867, 14120, 14373, 14627, 14880, 15131, 15383, 15637, 15890, 16143, 16397, 16650, 16899, 17152, 17406, 17659, 17912, 18166, 18419, 18669, 18922, 19176, 19429, 19682, 19936]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7

# class 技能10(主动技能):
    # 名称 = '神圣反击'
    # 所在等级 = 30
    # 等级上限 = 11
    # 学习间隔 = 3
    # 等级精通 = 1
    # MP = [22, 231]
    # data0 = [0]*11
    # data1 = [0]
    # CD = 6
    # TP上限 = 1

    # def 等效百分比(self, **argv):
    #     char: Character = argv.get('char', {})
    #     腹拳 = char.get_skill_by_name("俯冲腹拳").神圣反击攻击力(
    #     )/char.get_skill_by_name("技巧精通").加成倍率4('')
    #     return super().等效百分比(**argv)+腹拳+self.TP等级*303


class 技能11(主动技能):
    名称 = "破碎之锤"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [45, 462]
    无色消耗 = 0
    data0 = [0, 4129, 4550, 4968, 5386, 5806, 6224, 6643, 7062, 7482, 7900, 8319, 8739, 9158, 9577, 9996, 10415, 10834, 11252, 11673, 12091, 12509, 12930, 13348, 13768, 14187, 14604, 15024, 15442, 15862, 16281, 16699, 17120, 17538, 17956, 18377,
             18795, 19214, 19632, 20053, 20472, 20889, 21310, 21729, 22145, 22567, 22985, 23403, 23821, 24243, 24660, 25078, 25500, 25917, 26336, 26757, 27174, 27594, 28012, 28431, 28851, 29269, 29690, 30108, 30525, 30947, 31364, 31782, 32202, 32621, 33040]
    hit0 = 1
    data1 = [0, 2752, 3032, 3311, 3591, 3871, 4149, 4429, 4707, 4988, 5267, 5547, 5826, 6104, 6384, 6664, 6943, 7221, 7501, 7782, 8060, 8340, 8618, 8897, 9179, 9457, 9735, 10014, 10294, 10574, 10853, 11132, 11412, 11691, 11971, 12250, 12530,
             12809, 13087, 13368, 13648, 13925, 14205, 14484, 14764, 15044, 15323, 15601, 15882, 16162, 16440, 16720, 16999, 17278, 17559, 17836, 18116, 18394, 18674, 18954, 19235, 19513, 19792, 20070, 20352, 20631, 20909, 21189, 21466, 21749, 22028]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能12(主动技能):
    名称 = "刺拳猛击"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [50, 546]
    无色消耗 = 0
    data0 = [0, 783, 860, 940, 1018, 1098, 1177, 1256, 1335, 1415, 1495, 1574, 1654, 1733, 1814, 1893, 1972, 2051, 2130, 2210, 2287, 2368, 2447, 2526, 2605, 2684, 2764, 2843, 2923, 3002, 3081, 3160, 3241, 3320, 3400,
             3480, 3558, 3638, 3715, 3795, 3874, 3954, 4034, 4113, 4192, 4271, 4350, 4429, 4510, 4588, 4668, 4746, 4826, 4907, 4984, 5066, 5144, 5223, 5303, 5382, 5461, 5541, 5620, 5699, 5779, 5857, 5937, 6015, 6096, 6176, 6254]
    hit0 = 10
    data1 = [0, 2333, 2571, 2807, 3043, 3280, 3518, 3753, 3992, 4227, 4465, 4701, 4938, 5175, 5411, 5648, 5886, 6122, 6358, 6595, 6833, 7069, 7306, 7542, 7779, 8017, 8253, 8491, 8727, 8963, 9201, 9437, 9675, 9911, 10146, 10384, 10621, 10858,
             11093, 11332, 11568, 11805, 12041, 12278, 12515, 12753, 12988, 13226, 13462, 13700, 13936, 14174, 14409, 14646, 14883, 15120, 15358, 15593, 15829, 16068, 16304, 16543, 16777, 17015, 17252, 17488, 17724, 17962, 18199, 18435, 18672]
    hit1 = 1
    data2 = [0, 1517, 1670, 1824, 1977, 2131, 2285, 2440, 2594, 2748, 2901, 3056, 3208, 3364, 3518, 3671, 3826, 3979, 4133, 4288, 4441, 4594, 4749, 4902, 5058, 5212, 5364, 5519, 5671, 5824, 5980, 6134, 6287, 6442, 6595, 6748,
             6904, 7057, 7211, 7365, 7518, 7673, 7828, 7982, 8136, 8288, 8443, 8596, 8751, 8905, 9059, 9212, 9367, 9518, 9675, 9827, 9981, 10135, 10289, 10442, 10598, 10751, 10904, 11059, 11212, 11366, 11521, 11675, 11829, 11982, 12135]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    def TP加成(self):
        return 1.0

    def 等效百分比(self, **argv):
        if self.TP等级 > 0:
            self.hit0 = 10 + self.TP等级
            self.power1 = 1 + self.TP等级 * self.TP成长
            self.power2 = 1 + self.TP等级 * self.TP成长
        return super().等效百分比(**argv)


class 技能13(主动技能):
    名称 = "旋涡重拳"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [158, 1327]
    无色消耗 = 1
    data0 = [0, 760, 838, 916, 993, 1070, 1147, 1224, 1301, 1379, 1457, 1534, 1611, 1687, 1766, 1842, 1920, 1997, 2075, 2150, 2229, 2306, 2384, 2461, 2538, 2615, 2692, 2769, 2847, 2925, 3001, 3078, 3156, 3232, 3310,
             3388, 3465, 3541, 3620, 3696, 3775, 3851, 3929, 4005, 4083, 4159, 4238, 4315, 4392, 4468, 4547, 4623, 4701, 4779, 4856, 4932, 5010, 5087, 5165, 5242, 5319, 5396, 5473, 5550, 5629, 5706, 5783, 5859, 5938, 6013, 6091]
    hit0 = 10
    data1 = [0, 11423, 12581, 13741, 14899, 16057, 17216, 18375, 19534, 20693, 21852, 23010, 24170, 25328, 26488, 27647, 28806, 29965, 31123, 32282, 33441, 34601, 35759, 36915, 38076, 39234, 40393, 41552, 42711, 43870, 45028, 46187, 47345, 48506, 49665,
             50824, 51983, 53141, 54300, 55459, 56618, 57776, 58936, 60093, 61253, 62412, 63571, 64730, 65889, 67049, 68206, 69366, 70524, 71684, 72843, 74002, 75160, 76319, 77478, 78635, 79796, 80952, 82112, 83270, 84430, 85588, 86747, 87907, 89065, 90225, 91383]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.4
        self.power1 = 1.35


class 技能14(主动技能):
    名称 = "神圣组合拳"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 16
    MP = [150, 1260]
    无色消耗 = 1
    data0 = [0, 4173, 4595, 5017, 5441, 5866, 6288, 6713, 7134, 7556, 7980, 8405, 8827, 9249, 9674, 10098, 10520, 10945, 11368, 11790, 12213, 12637, 13060, 13484, 13906, 14330, 14753, 15177, 15600, 16024, 16446, 16870, 17294, 17717, 18138, 18563,
             18986, 19409, 19833, 20256, 20678, 21103, 21526, 21950, 22370, 22795, 23218, 23643, 24065, 24488, 24911, 25335, 25758, 26183, 26604, 27028, 27450, 27876, 28297, 28720, 29144, 29568, 29991, 30415, 30837, 31260, 31684, 32108, 32532, 32955, 33376]
    hit0 = 1
    data1 = [0, 5441, 5993, 6544, 7098, 7650, 8203, 8754, 9306, 9859, 10410, 10962, 11514, 12065, 12617, 13171, 13723, 14275, 14826, 15378, 15931, 16483, 17035, 17586, 18138, 18690, 19244, 19796, 20349, 20900, 21451, 22004, 22556, 23109, 23660, 24212,
             24765, 25317, 25869, 26422, 26972, 27524, 28077, 28628, 29181, 29732, 30284, 30837, 31390, 31942, 32495, 33045, 33597, 34150, 34702, 35255, 35805, 36357, 36911, 37463, 38016, 38568, 39119, 39672, 40223, 40775, 41327, 41878, 42430, 42984, 43535]
    hit1 = 1
    data2 = [0, 8525, 9391, 10254, 11120, 11985, 12850, 13716, 14579, 15445, 16309, 17174, 18039, 18903, 19769, 20634, 21499, 22365, 23230, 24095, 24959, 25824, 26689, 27554, 28418, 29283, 30148, 31013, 31878, 32743, 33609, 34475, 35339, 36204, 37069,
             37933, 38797, 39663, 40528, 41393, 42257, 43121, 43987, 44854, 45719, 46584, 47447, 48313, 49177, 50043, 50908, 51771, 52637, 53501, 54367, 55230, 56098, 56963, 57827, 58693, 59557, 60421, 61287, 62151, 63017, 63881, 64745, 65610, 66475, 67343, 68207]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.26


class 技能15(主动技能):
    名称 = "极速飓风拳"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [311, 2612]
    无色消耗 = 2
    data0 = [0, 2832, 3121, 3409, 3694, 3982, 4271, 4559, 4845, 5132, 5421, 5708, 5995, 6283, 6570, 6858, 7145, 7432, 7718, 8008, 8297, 8582, 8870, 9156, 9445, 9733, 10018, 10307, 10595, 10882, 11170, 11459, 11745, 12032, 12319, 12608, 12894,
             13182, 13469, 13757, 14045, 14332, 14621, 14906, 15196, 15484, 15769, 16057, 16345, 16632, 16921, 17206, 17494, 17782, 18070, 18355, 18643, 18933, 19219, 19506, 19793, 20083, 20369, 20657, 20944, 21230, 21519, 21808, 22092, 22381, 22670]
    hit0 = 10
    data1 = [0, 12145, 13375, 14608, 15840, 17072, 18306, 19536, 20767, 22001, 23232, 24464, 25695, 26929, 28160, 29393, 30624, 31857, 33087, 34321, 35553, 36784, 38018, 39248, 40482, 41711, 42946, 44177, 45407, 46642, 47871, 49106, 50336, 51569, 52803,
             54033, 55266, 56497, 57730, 58960, 60193, 61426, 62658, 63889, 65123, 66353, 67586, 68818, 70051, 71281, 72515, 73746, 74978, 76210, 77442, 78674, 79906, 81139, 82370, 83602, 84835, 86066, 87299, 88528, 89763, 90993, 92228, 93459, 94691, 95923, 97155]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.04
        self.hit0 = 6
        self.hit1 = 0
        self.CD = 15
        self.基础释放次数 = 2


class 技能16(被动技能):
    名称 = '干涸之泉'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能17(主动技能):
    名称 = "泯灭神击"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [800, 6720]
    无色消耗 = 5
    data0 = [0, 9780, 12048, 14316, 16584, 18850, 21119, 23387, 25655, 27923, 30190, 32459, 34727, 36995, 39262, 41530, 43799, 46067, 48334, 50602, 52870, 55139, 57408, 59674, 61942, 64211,
             66479, 68746, 71014, 73282, 75551, 77818, 80086, 82354, 84622, 86891, 89158, 91426, 93694, 95961, 98229, 100497, 102765, 105033, 107300, 109569, 111837, 114105, 116372, 118640, 120909]
    hit0 = 1
    data1 = [0, 15116, 18620, 22124, 25631, 29135, 32640, 36145, 39650, 43155, 46660, 50165, 53669, 57175, 60680, 64184, 67690, 71195, 74699, 78205, 81710, 85214, 88721, 92226, 95730, 99234, 102740,
             106245, 109750, 113255, 116760, 120264, 123770, 127275, 130779, 134285, 137790, 141294, 144800, 148305, 151809, 155315, 158819, 162324, 165831, 169335, 172840, 176346, 179850, 183355, 186860]
    hit1 = 1
    data2 = [0, 19560, 24095, 28631, 33168, 37704, 42241, 46776, 51312, 55848, 60384, 64919, 69455, 73990, 78527, 83062, 87599, 92134, 96670, 101206, 105741, 110278, 114814, 119351, 123886, 128422,
             132958, 137493, 142029, 146565, 151100, 155637, 160172, 164709, 169245, 173779, 178316, 182851, 187389, 191924, 196461, 200996, 205532, 210067, 214603, 219139, 223675, 228210, 232747, 237282, 241819]
    hit2 = 1
    data3 = [0, 44456, 54763, 65074, 75382, 85692, 96000, 106309, 116618, 126927, 137236, 147544, 157852, 168163, 178470, 188779, 199089, 209398, 219706, 230015, 240325, 250632, 260943, 271250, 281558, 291869,
             302176, 312486, 322794, 333103, 343412, 353720, 364031, 374338, 384648, 394955, 405265, 415574, 425882, 436192, 446501, 456808, 467118, 477427, 487736, 498045, 508353, 518662, 528970, 539281, 549588]
    hit3 = 1

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * (1.1 if self.等级 >= 9 else 1)


class 技能18(主动技能):
    名称 = "破碎之拳"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 35
    MP = [350, 680]
    无色消耗 = 2
    data0 = [0, 2516, 2772, 3029, 3284, 3539, 3794, 4049, 4305, 4561, 4816, 5072, 5327, 5583, 5836, 6093, 6349, 6604, 6859, 7114, 7370, 7624, 7880, 8138, 8393, 8648, 8902,
             9159, 9413, 9669, 9924, 10180, 10435, 10690, 10946, 11201, 11457, 11712, 11967, 12222, 12479, 12735, 12991, 13246, 13500, 13756, 14010, 14267, 14522, 14777, 15034]
    hit0 = 10
    data1 = [0, 6293, 6931, 7570, 8210, 8850, 9486, 10125, 10763, 11403, 12042, 12677, 13317, 13957, 14595, 15234, 15871, 16510, 17149, 17790, 18428, 19064, 19702, 20342, 20981, 21619,
             22258, 22897, 23535, 24175, 24813, 25449, 26088, 26728, 27367, 28005, 28643, 29282, 29921, 30559, 31199, 31835, 32475, 33114, 33751, 34390, 35029, 35667, 36307, 36946, 37584]
    hit1 = 1
    data2 = [0, 10491, 11554, 12618, 13683, 14747, 15811, 16877, 17939, 19003, 20070, 21133, 22196, 23262, 24326, 25389, 26455, 27518, 28582, 29649, 30711, 31775, 32842, 33904, 34968,
             36032, 37096, 38161, 39226, 40290, 41353, 42418, 43483, 44547, 45611, 46674, 47740, 48804, 49867, 50932, 51998, 53061, 54125, 55189, 56254, 57318, 58383, 59446, 60508, 61575, 62639]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1+0.3*1.78
        self.CDR *= 0.88


class 技能19(主动技能):
    名称 = "破坏之拳"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [350, 2700]
    无色消耗 = 2
    data0 = [0, 47781, 52627, 57478, 62324, 67171, 72019, 76867, 81713, 86562, 91408, 96255, 101106, 105952, 110798, 115648, 120494, 125341, 130189, 135036, 139882, 144733, 149580, 154426, 159276, 164122,
             168968, 173817, 178663, 183511, 188361, 193207, 198053, 202903, 207750, 212596, 217445, 222291, 227138, 231987, 236835, 241681, 246531, 251377, 256223, 261072, 265920, 270766, 275615, 280461, 285309]
    hit0 = 1
    data1 = [0, 5308, 5847, 6384, 6925, 7463, 8000, 8540, 9079, 9618, 10156, 10693, 11234, 11772, 12309, 12848, 13387, 13927, 14465, 15002, 15542, 16080, 16619, 17158, 17698, 18234,
             18773, 19313, 19851, 20390, 20927, 21466, 22006, 22544, 23082, 23622, 24159, 24698, 25237, 25775, 26315, 26852, 27390, 27931, 28468, 29008, 29545, 30084, 30624, 31161, 31700]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.28


class 技能20(主动技能):
    名称 = "仲裁怒击"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 69994, 77095, 84194, 91295, 98397, 105498, 112600, 119700, 126802, 133903, 141003, 148104, 155204, 162305, 169406, 176506, 183608, 190708, 197811, 204911, 212013, 219113, 226214, 233314, 240414,
             247516, 254617, 261718, 268818, 275920, 283022, 290124, 297222, 304323, 311425, 318524, 325626, 332727, 339829, 346928, 354029, 361130, 368231, 375333, 382433, 389535, 396635, 403737, 410837, 417937]
    hit0 = 1
    data1 = [0, 29997, 33040, 36084, 39127, 42169, 45212, 48256, 51299, 54343, 57388, 60430, 63473, 66515, 69559, 72603, 75645, 78689, 81732, 84775, 87820, 90863, 93904, 96947, 99991, 103034, 106078,
             109121, 112164, 115207, 118251, 121296, 124336, 127381, 130424, 133467, 136511, 139555, 142597, 145641, 148684, 151726, 154769, 157813, 160856, 163899, 166943, 169986, 173030, 176073, 179115]
    hit1 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.36


class 技能21(被动技能):
    名称 = '正义惩戒'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能22(主动技能):
    名称 = "超重拳"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 22812, 25127, 27441, 29756, 32070, 34386, 36699, 39013, 41329, 43642, 45957, 48271, 50586, 52900, 55214, 57530, 59844, 62156, 64473, 66786, 69100, 71415, 73731, 76044, 78357,
             80673, 82988, 85303, 87616, 89931, 92247, 94559, 96874, 99188, 101504, 103817, 106130, 108447, 110760, 113075, 115388, 117705, 120017, 122334, 124647, 126962, 129275, 131591, 133905, 136220]
    hit0 = 1
    data1 = [0, 91253, 100511, 109769, 119027, 128284, 137543, 146800, 156057, 165315, 174571, 183829, 193087, 202345, 211604, 220861, 230118, 239376, 248634, 257892, 267150, 276406, 285665, 294923, 304180,
             313438, 322695, 331952, 341210, 350468, 359727, 368983, 378241, 387498, 396757, 406014, 415272, 424529, 433788, 443046, 452303, 461562, 470818, 480075, 489332, 498590, 507848, 517106, 526364, 535621, 544880]
    hit1 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.35


class 技能23(主动技能):
    名称 = "制裁：怒火疾风"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 5378, 6625, 7872, 9119, 10366, 11613, 12863, 14109, 15357, 16603, 17851, 19097, 20344, 21592, 22838, 24087, 25333, 26581, 27828, 29075, 30323, 31570, 32817, 34063, 35312,
             36559, 37806, 39053, 40300, 41547, 42794, 44041, 45290, 46536, 47785, 49031, 50278, 51526, 52772, 54020, 55266, 56515, 57762, 59009, 60256, 61502, 62750, 63996, 65244, 66493]
    hit0 = 19
    data1 = [0, 7843, 9664, 11482, 13302, 15120, 16940, 18759, 20579, 22397, 24215, 26036, 27854, 29673, 31492, 33311, 35130, 36951, 38769, 40587, 42408, 44226, 46045, 47863, 49684,
             51503, 53322, 55141, 56960, 58778, 60597, 62418, 64236, 66056, 67874, 69694, 71512, 73333, 75151, 76969, 78790, 80608, 82427, 84246, 86067, 87885, 89705, 91523, 93342, 95162, 96980]
    hit1 = 2
    data2 = [0, 118793, 146339, 173885, 201432, 228980, 256525, 284072, 311619, 339165, 366711, 394258, 421805, 449350, 476897, 504444, 531989, 559536, 587084, 614628, 642176, 669723, 697269, 724815, 752362, 779908,
             807454, 835001, 862547, 890094, 917640, 945186, 972734, 1000281, 1027826, 1055373, 1082920, 1110465, 1138012, 1165559, 1193103, 1220651, 1248198, 1275742, 1303289, 1330838, 1358382, 1385928, 1413476, 1441022, 1468568]
    hit2 = 1


class 技能24(主动技能):
    名称 = "正义铁拳"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [960, 7200]
    无色消耗 = 7
    data0 = [0, 36980, 40733, 44484, 48236, 51988, 55740, 59492, 63244, 66995, 70745, 74500, 78250, 82002, 85752, 89506, 93257, 97008, 100762, 104513, 108264, 112016, 115769, 119520, 123271, 127022,
             130774, 134526, 138278, 142030, 145781, 149534, 153285, 157036, 160790, 164541, 168291, 172045, 175796, 179547, 183300, 187051, 190802, 194555, 198306, 202059, 205809, 209562, 213312, 217066, 220817]
    hit0 = 1
    data1 = [0, 3697, 4073, 4448, 4824, 5197, 5574, 5948, 6325, 6699, 7074, 7447, 7824, 8197, 8574, 8951, 9325, 9700, 10075, 10451, 10824, 11201, 11574, 11951, 12325, 12700,
             13076, 13452, 13829, 14202, 14578, 14950, 15327, 15702, 16079, 16453, 16829, 17201, 17578, 17955, 18330, 18705, 19080, 19454, 19828, 20205, 20579, 20955, 21332, 21707, 22081]
    hit1 = 15
    data2 = [0, 92452, 101833, 111212, 120591, 129971, 139349, 148728, 158111, 167488, 176867, 186247, 195627, 205006, 214385, 223765, 233144, 242524, 251903, 261281, 270661, 280041, 289421, 298800, 308178,
             317558, 326937, 336316, 345698, 355075, 364455, 373834, 383214, 392592, 401972, 411352, 420732, 430112, 439489, 448868, 458249, 467630, 477009, 486387, 495766, 505146, 514526, 523906, 533285, 542663, 552043]
    hit2 = 1


class 技能25(被动技能):
    名称 = '绝对正义'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能26(主动技能):
    名称 = "正义执行：雷米迪奥斯的圣座"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 8055]
    无色消耗 = 15
    data0 = [0, 236617, 291486, 346353, 401221, 456089, 510957, 565825, 620694, 675561, 730429, 785296, 840166, 895034, 949900, 1004768, 1059637, 1114505, 1169373, 1224240, 1279108, 1333977, 1388844, 1443713, 1498580, 1553448,
             1608317, 1663184, 1718052, 1772920, 1827788, 1882656, 1937524, 1992393, 2047260, 2102127, 2156996, 2211865, 2266732, 2321600, 2376468, 2431336, 2486204, 2541070, 2595939, 2650808, 2705676, 2760544, 2815412, 2870280, 2925148]
    hit0 = 1
    data1 = [0, 354927, 437227, 519530, 601832, 684134, 766436, 848738, 931040, 1013342, 1095644, 1177946, 1260248, 1342549, 1424853, 1507154, 1589457, 1671758, 1754058, 1836362, 1918663, 2000965, 2083267, 2165568, 2247871, 2330174,
             2412475, 2494778, 2577079, 2659381, 2741684, 2823985, 2906286, 2988589, 3070890, 3153193, 3235494, 3317796, 3400098, 3482401, 3564702, 3647004, 3729306, 3811608, 3893911, 3976212, 4058515, 4140816, 4223116, 4305422, 4387722]
    hit1 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'infighter'
        self.名称 = '神启·蓝拳圣使'
        self.角色 = '圣职者(男)'
        self.角色类型 = '输出'
        self.职业 = '蓝拳圣使'
        # 用来筛CP武器的
        self.转职 = '蓝拳圣使'
        self.武器选项 = ['图腾', '战斧', '镰刀', '念珠', '十字架']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '图腾'
        self.防具类型 = '轻甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.99

        super().__init__(equVersion)
